package com.example.cathouse;

import android.app.Application;

import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;

import java.util.List;

public class CatViewModel extends AndroidViewModel {
    private CatRepository catRepository;

    public CatViewModel(@NonNull Application application) {
        super(application);
        catRepository = new CatRepository(application);
    }

    public LiveData<List<Cat>> getAllCatsLive() {
        return catRepository.getAllCatsLive();
    }

    public void insertCats(Cat... cats) {
        Cat cat1 = new Cat("小橘子", "橘色，胸前带点白毛", "母", "送养", "未绝育", "亲人、可抱", "大眼睛、高鼻梁、小尖脸", "被目击和其他猫吵架");
        Cat cat2 = new Cat("花花", "三花", "母", "健康", "已绝育", "吃东西的时候可以随便摸\n喜欢偷外卖", "花花的", "猫霸");
        Cat cat3 = new Cat("狸明一号", "狸花", "公", "健康", "未绝育", "吃东西的时候可以随便摸", "萌", "花花之子");
        Cat cat4 = new Cat("狸明杀机", "狸花", "未知", "健康", "未绝育", "怕人 安全距离一米以内 \n有挠人前科", "全黑狸花 眼睛灰色", "这只猫猫很孤单");
        Cat cat5 = new Cat("圈圈", "狸花", "母", "健康", "未绝育", "亲人、不可抱 可摸\n讨吃的时候会围着转圈圈", "只有一直眼睛", "这只猫猫很孤单");
        Cat cat6 = new Cat("小布丁", "白色狸花", "未知", "健康", "未绝育", "怕人 安全距离一米以内", "大小眼 有王霸之气", "这只猫猫很孤单");
        Cat cat7 = new Cat("青团", "白色狸花", "未知", "健康", "未绝育", "怕人 安全距离一米以内", "飞机耳朵 表情很凶狠", "这只猫猫很孤单");
        Cat cat8 = new Cat("二小姐", "白色狸花", "母", "健康", "未绝育", "亲人、不可抱 可摸", "新校门大美女一枚\n尾巴上经常黏着树叶", "经常被采花大盗骑");
        Cat cat9 = new Cat("好吃喵", "狸花", "公", "健康", "未绝育", "吃东西的时候可以摸一下 贪吃", "特别重 是个可爱的男孩", "这只猫猫很孤单");
        Cat cat10 = new Cat("白围巾", "白色狸花", "未知", "健康", "未绝育", "吃东西的时候可以摸一下", "脖子上系着围巾\n乞讨天团成员", "这只猫猫很孤单");
        Cat cat11 = new Cat("大橘", "橘色", "母", "健康", "未绝育", "怕人 安全距离1m以上", "胖胖的 很可爱", "一群猫的麻麻");
        Cat cat12 = new Cat("二毛", "橘白", "公", "健康", "未绝育", "吃东西的时候可以摸一下", "可爱", "花花之子");
        Cat cat13 = new Cat("大胖子", "橘色", "公", "健康", "未绝育", "亲人、不可抱 可摸", "特别胖 是个话痨", "情人坡大肥猫之一");
        Cat cat14 = new Cat("胖妈", "橘色玳瑁", "母", "健康", "已绝育", "怕人 安全距离1m以上", "绿眼睛 圆脸", "大胖子妈妈");
        Cat cat15 = new Cat("黄黄", "橘白", "未知", "健康", "未绝育", "怕人 安全距离1m以上", "英俊 脏脏鼻", "这只猫猫很孤单");
        Cat cat16 = new Cat("校草", "橘色", "公", "健康", "未绝育", "喜欢吃草 经常可以看见在吃草\n有时亲人有时不亲人", "英俊 校草级", "这只猫猫很孤单");
        Cat cat17 = new Cat("猫巨基", "橘白", "未知", "健康", "未绝育", "有时亲人有时不亲人\n想接近人又不敢", "性感小胡子 特别可爱", "这只猫很孤单");
        Cat cat18 = new Cat("面包球", "橘色", "未知", "健康", "未绝育", "怕人 安全距离1m以上", "经常猫猫趴\n蜷成一团像个大面包", "萝卜丁和口水娃以及呆头的好饭友");
        Cat cat19 = new Cat("T恤衫", "橘白", "未知", "健康", "未绝育", "吃东西的时候可以摸一下", "不太聪明的样子\n胸口白色构成T字", "这只猫猫很孤单");
        Cat cat20 = new Cat("小黑", "黑白", "母", "健康", "未绝育", "吃东西的时候可以摸一下", "让人又爱又恨", "大橘朋友");
        Cat cat21 = new Cat("小白领", "黑白", "母", "健康", "未绝育", "吃东西的时候可以摸一下", "领口白白的\n爱蹲路中间", "这只猫猫很孤单");
        Cat cat22 = new Cat("八十万", "黑白", "未知", "健康", "未绝育", "吃东西的时候可以一直摸", "全身黑\n人走近就会卖萌求东西恰", "这只猫猫很孤单");
        Cat cat23 = new Cat("小奶牛", "黑白", "母", "健康", "未绝育", "怕人 安全距离1m以内", "有小胡子\n活泼好动", "这只猫猫很孤单");
        Cat cat24 = new Cat("太极", "黑白", "未知", "健康", "未绝育", "怕人 安全距离1m以内", "乞讨天团成员 黑白脸像太极\n有个不高兴的眉毛 ", "这只猫猫很孤单");
        Cat cat26 = new Cat("黑骑士", "奶牛", "未知", "健康", "未绝育", "怕人 安全距离1m以内", "头上戴有黑色头盔", "这只猫猫很孤单");
        Cat cat28 = new Cat("小三花", "黑白", "母", "健康", "未绝育", "吃东西的时候可以摸一下", "领口白白的 爱蹲路中间", "这只猫猫很孤单");
        Cat cat29 = new Cat("江湖大哥", "玳瑁", "母", "健康", "未绝育", "怕人 安全距离1m以内", "脸上一条杠", "在宁一蹭吃蹭喝");
        Cat cat30 = new Cat("鳌拜", "长毛玳瑁", "母", "健康", "未绝育", "怕人 安全距离1m以内", "长毛", "在宁一蹭吃蹭喝");
        Cat cat31 = new Cat("呆瓜", "三花", "母", "健康", "未绝育", "怕人 安全距离1m以内", "花色的猫猫 黄黄的眼睛 越来越胖胖", "黄黄和薄荷的好朋友");
        Cat cat32 = new Cat("呆毛", "玳瑁", "母", "健康", "未绝育", "亲人可抱", "很乖的外形\n经常求摸摸", "这只猫猫很孤单");
        Cat cat33 = new Cat("口水娃", "玳瑁", "性别", "健康", "未绝育", "怕人 安全距离1m以内", "有口炎 经常流口水\n有凌厉的黄眼睛", "萝卜丁和面包球以及呆头的好饭友");
        Cat cat34 = new Cat("一一", "玳瑁", "母", "健康", "未绝育", "亲人可抱", "脖子上有一圈一圈的花纹", "这只猫猫很孤单");
        Cat cat35 = new Cat("黑眼睛", "白色", "公", "健康", "未绝育", "吃东西的时候可以一直摸", "疯癫 只亲近熟悉的人", "大橘之子");
        Cat cat36 = new Cat("小八字", "白色", "未知", "健康", "未绝育", "怕人 安全距离1m以外", "丑萌丑萌", "花花之子");
        Cat cat37 = new Cat("小异瞳", "白色", "未知", "健康", "未绝育", "怕人 安全距离1m以外", "可爱子", "花花之子");
        Cat cat38 = new Cat("小白白", "白色", "未知", "健康", "未绝育", "怕人 安全距离1m以外", "胆小怕人", "花花之子");
        Cat cat39 = new Cat("男朋友", "白色", "公", "健康", "未绝育", "亲人 不可抱 可摸", "白色异瞳 头上有人", "黑眼睛朋友");
        Cat cat40 = new Cat("大白（白头版）", "白色", "公", "健康", "未绝育", "怕人 安全距离1m以外", "斗鸡眼白猫", "很多猫的爹");
        Cat cat41 = new Cat("呆头", "白色", "未知", "健康", "未绝育", "怕人 安全距离1m以内", "鼻子上有黑头\n头上有人", "大白（风流版之子）\n面包球和口水娃和呆头的好饭友");
        Cat cat42 = new Cat("薄荷", "白色", "未知", "健康", "未绝育", "怕人 安全距离1m以内", "漂亮的蓝色眼睛", "黄黄的朋友");
        Cat cat43 = new Cat("女朋友", "白色", "母", "健康", "未绝育", "吃东西的时候可以摸一下", "头上有人 小小仙女", "大白之女");
        Cat cat44 = new Cat("白咪", "白色", "公", "健康", "未绝育", "亲人 可抱", "纯白猫猫 大眼睛\n肥肥乖乖 可以撸到爽", "和大白（风流版）骂过架");
        Cat cat45 = new Cat("大白（风流版）", "白色", "公", "健康", "未绝育", "有时亲人 有时不亲人", "大头走后全身脏脏的\n大头的朋友", "这只猫猫很孤单");
        Cat cat46 = new Cat("十点半", "白色", "未知", "健康", "未绝育", "怕人 安全距离1m以内", "每晚十点左右准时出现", "这只猫猫很孤单");
        Cat cat47 = new Cat("萝卜丁", "白色", "未知", "健康", "未绝育", "怕人 安全距离1m以内", "头上有人\n长得非常清秀", "面包球和口水娃和呆头的好饭友 大白（风流版）之子");
        Cat cat48 = new Cat("采花大盗", "白色", "公", "健康", "未绝育", "吃东西的时候可以摸一下", "纯白的猥琐猫猫 不修边幅", "经常骑二小姐");

        catRepository.insertCats(cat1, cat2, cat3, cat4, cat5, cat6, cat7, cat8, cat9, cat10, cat11, cat12, cat13, cat14, cat15, cat16, cat17, cat18, cat19, cat20, cat21, cat22, cat23, cat24, cat26, cat28, cat29, cat30, cat31, cat32, cat33, cat34, cat35, cat36, cat37, cat38, cat39, cat40, cat41, cat42, cat43, cat44, cat45, cat46, cat47, cat48);
    }


    public void updateCats(Cat... cats) {
        catRepository.updateCats(cats);
    }

    public void deleteCats(Cat... cats) {
        catRepository.deleteCats(cats);
    }

    public void deleteAllCats() {
        catRepository.deleteAllCats();
    }

    public LiveData<Cat> getCat(int id) {
        return catRepository.getCat(id);
    }

    public LiveData<List<Cat>> findCatsWithPattern(String pattern) {
        return catRepository.findCatWithPattern(pattern);
    }

}
